package cn.edu.sjtu.stap.cfg;

/**
 * The kinds of flows in control flow graph.
 * 
 * @author William
 *
 */
public enum CfgFlowKind {
    NORMAL_FLOW("Normal Flow"),
    TRUE_FLOW("True Flow"),
    FALSE_FLOW("False Flow"),
//    FALL_THROUGH_FLOW("Fall Through Flow"),
    BREAK_FLOW("Break Flow"),
    CONTINUE_FLOW("Continue Flow"),
    LOOP_FLOW("Loop Flow"),
    RETURN_FLOW("Return Flow"),
    CALL_FLOW("Call Flow"),
    WEAVE_FLOW("Weave Flow"),
    WEAVE_RETURN_FLOW("Weave Return Flow");
//    public static final int FLOW                        = 1;
//    public static final int TRUE_CONTROL_FLOW           = 11;
//    public static final int FALSE_CONTROL_FLOW          = 12;
//    public static final int FALL_THROUGH_FLOW           = 13;
//    public static final int parameterFlow          = 14;
//    public static final int NORMAL_FLOW                 = 15;
//    public static final int BREAK_FLOW                  = 16;
//    public static final int CONTINUE_FLOW               = 17;
//    public static final int RETURN_FLOW                 = 18;
//    public static final int CALL_FLOW                   = 19;
//    public static final int VALUE_RETURN_FLOW           = 14;

//    public static final int CDs                    = 2;
//    public static final int trueControlDependence  = 21;
//    public static final int falseControlDependence = 22;
//    public static final int fallControlDependence  = 23;
//
//    public static final int DDs                    = 3;
//    public static final int defuseDependence       = 31;
//    public static final int deforderDependence     = 32;
//    public static final int outputDependence       = 33;
//    public static final int antiDependence         = 34;
//    public static final int parameterIn            = 35;
//    public static final int parameterOut           = 36;
    private CfgFlowKind(String name) {
        this.name = name;
    }
    
    public String getName() {
        return name;
    }
    
    private String name;
}
